1. Field of the Invention
The invention relates to an echo canceller provided in a telephone circuit with digital paths in the proximity of a subscribers interface unit and having for its object to cancel in one digital path for conveying digital code words supplied by the interface unit and representative of samples of near-end speech signals, denoted send path hereinafter, the echo effect of digital code words representative of samples of far-end speech signals and conveyed to the interface unit via the other digital path, denoted receive path hereinafter. The interface unit controls a subscriber line or a subscriber group having a plurality of subscriber lines, and in the latter case comprises of course the necessary multiplexing and demultiplexing means.
More specifically, the echo canceller according to the invention is intended for digital PCM-transmission which utilizes a companding pseudo-logarithmic encoding law, such as the A-law of CCITT recommendation G.711 or the .mu.255-Law.
In the further course of the description the following symbols will be used:
X=an arbitrary pseudo-logarithmic code word which is representative of a sample of the far-end speech signal and is conveyed to the interface unit via the receive path, PA1 S=an arbitrary pseudo-logarithmic code word which is representative of a sample of the near-end speech signal and is supplied by the interface unit. PA1 a first circulating shift register having an input, an output and a capacity of (k+1) code words, the input being connected to the receive path for receiving a pseudo-logarithmic code word X at each instant nT (where T is the sampling period of the code words and n is an integer for characterizing the number of the relevant instant) and the circulation rate of the code words in this first shift register being such that the sequence of the k most recent code words X occurs in the time interval between two consecutive instants nT and (n+1)T; PA1 a second circulating shift register having an input, an output and a capacity of k code words, this second shift register operating in phase with the first shift register and a sequence of k coefficient code words C circulating permanently in this second shift register; PA1 digital correlation calculation means having inputs connected to the output of the first shift register, the send path and the output of the second shift register respectively, and having an output connected to the input of the second shift register for modifying the value of the code words C circulating therein as a function of comparison criteria for the code words, supplied by the first shift register and the send path, respectively; PA1 digital convolution calculation means having inputs connected to the output of the first shift register and the output of the second shift register, respectively, and an output supplying at each instant nT an echo cancellation code word obtained by summing k code words, each of which results from an operation for combining a code word C and a code word X supplied simultaneously by the first and second shift registers; PA1 digital subtraction calculation means having an input connected to said interface unit, a correction input connected to the output of the convolution calculation means and an output connected to the send path, a sequence of pseudo-logarithmic code words R being supplied to the send path, each of which results from an operation for combining a code word S supplied by said interface unit and an echo cancellation code word supplied by the convolution calculation means. PA1 a calculator unit having inputs connected to the output of the first shift register and the output of the second shift register, respectively, and an output, said calculator unit supplying a sequence of pseudo-logarithmic code words U, each of which results from an operation for combining a code word X and a code word C; PA1 a first pseudo-logarithmic-to-linear code converter having an input connected to the output of said calculator unit, and an output, this code converter converting each pseudo-logarithmic code word U into a linear code word u; PA1 an accumulator-adder having an input connected to the output of said first code converter, and an output connected to the correction input of the subtraction calculation means, this accumulator-adder producing at each instant nT a linear echo cancellation code word y, which is the sum of the k most recent linear code words u. PA1 a second pseudo-logarithmic-to-linear code converter having an input connected to said interface unit for receiving the pseudo-logarithmic code words S, and an output, this code converter converting each pseudo-logarithmic code word S into a linear code word s; PA1 a subtractor having a (+) input connected to the output of said second code converter, a(-) input connected to the output of said accumulator-adder, and an output, this subtractor supplying a sequence of linear code words r, each of which represents the difference between the value of a code word s and the value of an echo cancellation code word y; PA1 a linear-to-pseudo-logarithmic code converter having an input connected to the output of said subtractor, and an output connected to the send path, this code converter converting each linear code word r into a pseudo-logarithmic code word R; is characterized in that the correlation calculation means comprise: PA1 a third pseudo-logarithmic-to-linear code converter having an input connected to the output of the first shift register, and an output, this code converter converting each pseudo-logarithmic code word X into a linear code word x; PA1 a comparison calculator unit having an input connected to the output of said third code converter, an input connected to the output of said subtractor, and an output, the comparison calculator unit comprising means for forming the average .vertline.x.vertline. of the absolute values .vertline.x.vertline. of the k most recent code words x, for forming the ratio of the absolute value .vertline.r.vertline. of each code word r to said average .vertline.x.vertline. and for producing a correction validation signal when the absolute value .vertline.x.vertline. differs from said average .vertline.x.vertline. and the ratio .vertline.r.vertline./.vertline.x.vertline. is located between predetermined limits, and PA1 means connected to said comparison calculator unit and the second shift register for adding to the code words C circulating in the second shift register a correction term .DELTA.C having a predetermined value and a suitable sign when said comparison calculator unit produces a correction validation signal. PA1 the use in telephone circuits utilizing the A-law encoding, PA1 the operation in the event of double-talk, PA1 the initiation upon establishment of a communication, will now be further explained in the following description of an embodiment with reference to the drawings.
2. Description of the Prior Art
It is a generally known fact that the presence of one or more analog hybrids in the interface unit causes an impedance discontinuity which results in the return over the send path of an echo Y of the codewords X which are conveyed to the interface unit via the receive path. So the code words S supplied by the interface unit comprise in fact a near-end speech signal component Z and a far-end speech signal echo component Y. It is further known that the echo becomes annoying when the delay time of the signals attains values of some tenth of a second, irrespective of the nature of the transmission facility (electrical conductors or radio links).
Finally it is known that so far the most efficient method of substantially suppressing the echo consists in synthesizing an echo cancelling signal on the basis of the pulse response of the "echo path" (which in actual practice means the constituent parts of the interface unit which form the principal echo source), the echo cancelling signal being formed by code words Y, each one of which is combined with a code word S to obtain a code word R which is practically identical to the corresponding near-end speech signal code word Z. It should be noted that here the expression "combined with" is used and not the expression "subtracted from". The latter expression would be correct if the signal samples representing code words were linear code words. When a non-linear encoding law is used for the transmission, the operation to be realized is much more complicated than a simple subtraction. The echo canceller according to the invention utilizes the above-described method.